﻿<p>The <em>IfcToroidalSurface</em> is a bounded elementary surface. It is constructed by completely revolving a circle around an axis line. The inherited <em>Position</em> attribute defines the
<em>IfcAxisPlacement3D</em> and provides:</p>
<ul>
<li><em>SELF\IfcElementarySurface.Position</em>: The location and orientation of the axis system for the
primitive.</li>
<li><em>SELF\IfcElementarySurface.Position.Location</em>: The center of the toroidal surface.</li>
<li><em>SELF\IfcElementarySurface.Position.Position[3]:</em> The axis of revolution of the toroidal surface</li>
</ul>

<blockquote class="extDef">NOTE&nbsp; Definition according to ISO/CD 10303-42:1992<br>
<p style="font-size:inherit">An <em>IfcToroidalSurface</em> is a type of elementary surface, which could be produced by revolving a circle about a  line in its plane. The radius of the circle being revolved is referred to here as the <em>MinorRadius</em> and the <em>MajorRadius</em> is the distance from the centre of this circle to the axis of revolution. A toroidal surface is defined by the major and minor radii and the position and orientation of the surface.</p>
 <p style="font-size:inherit> The data is to be interpreted as follows:</p>
 <blockquote style="font-size:inherit">
C = Position.Location <br>
x = Position.P[1] <br>
y = Position.P[2] <br>
z = Position.P[3] (axis of toroidal_surface) <br>     
<i> R </i> = MajorRadius <br>  
<i> r  </i> = MinorRadius <br>  
 </blockquote>
 <p style="font-size:inherit> and the surface is parametrised as </p>
 <blockquote style="font-size:inherit"><i><b>&#963;</b>(u,v)</i> = <b>C</b> + <i>(R + r</i>cos <i>v</i>)((cos<i>u</i>)<b>x</b> + (sin <i>u</i>))<b>y</b>) + <i>r</i>(sin<i>v</i>))<b>z</b></blockquote>
 <p style="font-size:inherit">where the parametrisation range is <i>0 &#8804; u, v &#8804; 360</i> degrees. <i>u</i> and <i>v</i> are angular parameters and when numerical values are specified they shall use the current units for plane angle measure.</p>
 <p style="font-size:inherit">In the placement coordinate system defined above, the surface is represented by the equation <i>S</i> = 0, where </p>
 <blockquote style="font-size:inherit"><i> S(x, y, z) = x<sup>2</sup> + y<sup>2</sup> + z<sup>2</sup> -2R&#8730;(x<sup>2</sup>+y<sup>2</sup>) - r<sup>2</sup> + R<sup>2</sup>.</i></blockquote>
 <p style="font-size:inherit">The positive direction of the normal to the surface at any point on the surface is given by</p>
 <blockquote style="font-size:inherit"> <i> ( S<sub>x</sub>, S<sub>y</sub>, S<sub>z</sub> ). </i></blockquote>
 <p style="font-size:inherit">The unit normal is given by </p>
 <blockquote style="font-size:inherit"><b>N</b><i>(u,v)</i> = cos<i>v</i>((cos <i>u</i>)<b>x</b> + (sin <i>u</i>)<b>y</b>) + (sin <i>v</i>)<b>z</b>.</blockquote>
 <p style="font-size:inherit">The sense of this normal is away from the nearest point on the circle of radius <i>R</i> with centre <b>C</b>. A manifold surface will be produced if the major radius is greater than the minor radius. If this condition is not fulfilled, the resulting surface will be self-intersecting. </p>
</blockquote>

<blockquote class="note">NOTE&nbsp; Entity adapted from <strong>toroidal_surface</strong> defined in ISO 10303-42.</blockquote>
<blockquote class="history">HISTORY&nbsp; New entity in IFC4 Addendum 2.</blockquote>